#ifndef CLIMATE_H
#define CLIMATE_H


#include <string>
#include <vector>
#include <OgreResource.h>
#include "ground_type.h"
#include "season.h"


class Climate
{
public:
	Climate();

	static void                     add(std::shared_ptr<Climate> climate);
	static std::shared_ptr<Climate> get(unsigned int color);
	static std::shared_ptr<Climate> getClimate(std::string name);

	static std::map<unsigned int, std::shared_ptr<Climate>>& getColorMap();

	unsigned int color;
	std::string	 name;
	
	std::string textures[Season::COUNT][GroundType::COUNT];

	std::shared_ptr<Cas> sparseTree[Season::COUNT];
	std::shared_ptr<Cas> denseTree[Season::COUNT];
	std::shared_ptr<Cas> canopy[Season::COUNT];
	
private:
	static std::map<std::string,  std::shared_ptr<Climate>> nameMap;
	static std::map<unsigned int, std::shared_ptr<Climate>> colorMap;
};

#endif